§ Fox3.0 常用工具类介绍(IOS)
§ 1、ConfigPreference 配置
ConfigPreference是Fox移动平台中获取和设置配置的工具类型,我们可以通过该工具类获取client.properties中的配置。
例如: client.poperties配置如下:
#主工程
web/mainApp=fox
#回退键事件
web/backAction=javascript:fox.custom.back()
#安全配置
security/scopes=[Http]
#security/scopes=[]
#是否启用更新
version/updateEnabled=false
#版本服务器地址
version/address=http://139.199.79.118:9705
获取client.properties中的配置
//获取配置
let pref = ConfigPreference.instance
//获取主应用名称
let mainAppName:String? = pref.get(mark: "web", key: "mainApp")
§ 2、FileAccessor 文件访问器
FileAccessor文件访问器,为每个应用的沙箱提供了操作的接口。 其使用方法如下:
步骤一:获取应用对应的FileAccessor
//获取文件访问器
let fileAccessor = FileAccessor.get(name: "应用名")
步骤二:操作文件系统,常用接口如下
//获取应用的根目录
public func getRoot()->String
//获取应用下的文件路径
public func getRootFilePath(path:String)-> String
//获取应用workspace
public func getWorkspace()->String
//获取应用workspace下的文件路径
public func getWorkspaceFilePath(path:String) -> String
//创建新的文件
public func createNewFile(path:String) -> Bool
//设置最大循环数量
public func setMaxCircleCount(count:Int)
//创建循环文件
public func createCircleFile(parent:String, suffix:String) -> String?
//拷贝
public func copy(atPath:String, toPath:String) -> Bool
//创建此抽象路径名指定的目录
public func mkdir(path:String) -> Bool
//创建此抽象路径名指定的目录,包括创建必需但不存在的父目录
public func mkdirs(path:String) -> Bool
//判断文件或文件夹是否存在
public func exists(path:String)->Bool
//判断文件是否存在
public func isFile(path:String)->Bool
//判断文件夹是否存在
public func isDirectory(path:String)->Bool
//删除文件
public func delete(path:String) -> Bool
//获取文件大小(如果目标文件不存在或为文件夹,则返回-1,否则返回大小)
public func getSize(path:String) -> UInt64
//列举指定目录下面的文件列表
public func list(path:String) -> [String]
//获取父亲目录
public func getParentDirectory(path:String)-> String?
//写入内容
public func setContent(path:String, data:Data) -> Bool
//写入内容
public func setContentAsString(path:String, str:String) -> Bool
//写入内容(Base64)
public func setContentAsBase64(path:String, str:String) -> Bool
//获取内容
public func getContent(path:String) -> Data?
//以字符串形式获取内容
public func getContentAsString(path:String) -> String?
//以字符串(Base64)形式获取内容
public func getContentAsBase64(path:String) -> String?
§ 3、HttpRequester HTTP访问器
Http访问器,为每个应用提供访问Fox Server的能力。其使用步骤如下:
§ 步骤一:获取应用对应的HttpRequester(session共享)
let httpRequester = HttpRequester.get("应用名")
§ 步骤二:进行http通信,其接口如下
//POST请求
public func request(method:HttpMethod, string:String, header:[String:String]?, data:[String:Any]?, timeout:Int = -1, callback:@escaping(_ data:Data?, _ response:URLResponse?, _ error:Error?)->Void) -> HttpRequester
//http请求
public func request(method:HttpMethod, url:URL, header:[String:String]?, data:Data?, timeout:Int = -1, callback:@escaping(_ data:Data?, _ response:URLResponse?, _ error:Error?)->Void) -> HttpRequester
//ping测试
public func ping(address:String, timeout:Int) -> Bool
//判断远程文件是否存在
public func isRemoteFileExists(address:String, name:String?, path:String, timeout:Int)throws -> Bool
//列举远程文件列表
public func listRemoteFile(address:String, name:String?, path:String, scale:String?, timeout:Int) throws ->[String]
//获取远程文件的大小
public func getRemoteFileSize(address:String, name:String?, path:String, timeout:Int) throws ->Int
//获取远程文件的stamp值
public func getRemoteFileStamp(address:String, name:String?, path:String, timeout:Int) throws -> String
//列举远程文件的md5 stamp
public func listRemoteFileStamps(address:String, name:String?, path:String, scale:String, timeout:Int)throws ->[String]
//下载文件(异步下载)
public func download(address:String, name:String?, path:String, savePath:String, timeout:Int,
thumbnail:Bool = false, callback:@escaping(_ code:Int, _ data:Any?)->Void) throws -> Void
//下载文件
public func download(address:String, name:String?, path:String, savePath:String, timeout:Int, thumbnail:Bool = false) throws -> Bool
//上传文件(异步上传)
public func upload(address:String, name:String?, path:String, fileName:String?,
uploadPath:String, timeout:Int, callback:@escaping(_ code:Int, _ data:Any?)->Void) throws -> Void
//上传文件
public func upload(address:String, name:String?, path:String, fileName:String?,
uploadPath:String, timeout:Int) throws -> Bool
//直接下载文件(异步下载)
public func directDownload(address:String, data:[String:Any], savePath:String, timeout:Int, callback:@escaping(_ code:Int, _ data:Any?)->Void) throws -> Void
//直接下载文件
public func directDownload(address:String, data:[String:Any], savePath:String, timeout:Int) throws -> Bool
//直接上传文件(异步上传)
public func directUpload(address:String, data:[String:Any],
uploadFilePath:String, timeout:Int, callback:@escaping(_ code:Int, _ data:Any?)->Void) throws -> Void
//直接上传文件
public func directUpload(address:String, data:[String:Any], uploadFilePath:String, timeout:Int) throws -> Bool
//批量下载文件
public func batchDownload(address:String, name:String?, downloadDirectory:String,
downloadFilePaths:[String], saveDir:String, checkValidity:Bool, timeout:Int)throws ->Bool
//服务请求
public func service(path:String, headers:[String:String]?,
data:[String:Any], timeout:Int, traceId:String, callback:@escaping(_ code:Int, _ data:Any?)->Void)
//服务请求
public func service(path:String, headers:[String:String]?,
string:String, timeout:Int, traceId:String, callback:@escaping(_ code:Int, _ data:Any?)->Void)
§ 安全管理器 SecurityManager
安全管理器,提供获取加密/解密套件的接口。我们可以通过该对象提供的方法对内容进行加密或解密。
§ SecurityManager接口说明
//获取公共加密套件
public func getPublicCipher()->ICipher
//获取加密套件
public func getCipher(key:[UInt8])->ICipher
//获取加密套件
public func getCipher(keyPair:SecKeyPair)->ICipher
//获取加密套件
public func getCipher(keyStirng:String)->ICipher
§ ICipher接口说明
//加密
func encrypt(data:Data) -> Data
//解密
func decrypt(data:Data) -> Data← APP打包指南